#ifndef KLIPPY_LOGGING_H
#define KLIPPY_LOGGING_H

#include <string>
#include <memory>

namespace klippy {

class Logger {
public:
    enum LogLevel {
        DEBUG,
        INFO,
        WARNING,
        ERROR,
        CRITICAL
    };

    static Logger& get_instance();
    
    void set_level(LogLevel level);
    void log(LogLevel level, const std::string& message);

private:
    Logger();
    ~Logger() = default;

    LogLevel current_level_;
};

} // namespace klippy

#endif // KLIPPY_LOGGING_H